package com.ax.base.common.service;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Service;

import com.ax.base.common.domain.BaseOrg;
import com.ax.base.common.domain.BaseSubject;
import com.ax.base.common.domain.SysDict;
import com.ax.base.common.domain.Tree;
import com.ax.base.common.utils.PageUtils;
import com.ax.base.system.domain.MenuDO;

@Service
public interface DictionarySubjectService {

	/**
	 * 医学科目(模块:医学科目)
	 * 
	 * @param Map<String,Object> map
	 *           
	 * @return List<BaseSubject>
	 */
	public List<BaseSubject> queryBaseSubjectSer(Map<String, Object> params);
	
	/**
	 * 医学科目(模块:医学科目)*跳转增加页面
	 * 
	 * @param Long pId
	 *           
	 * @return BaseSubject baseSubject
	 */
	public BaseSubject getBaseSubject(Long pId);
	
	/**
	 * 医学科目(模块:医学科目)
	 * 
	 * @param BaseSubject baseSubject
	 *           
	 * @return SUCC
	 */
	public void insertBaseSubjectSer(BaseSubject baseSubject);
	
	/**
	 * 医学科目(模块:医学科目)
	 * 
	 * @param BaseSubject baseSubject
	 *           
	 * @return SUCC
	 */
	public void updateBaseSubjectSer(BaseSubject baseSubject);
	
	/**
	 * 字典查询(模块:字典)
	 * 
	 * @param Map<String,Object> map
	 *           
	 * @return PageUtils
	 */
	public List<SysDict> querySysDictSer(Map<String, Object> params);
	
	/**
	 * 组织机构查询(模块:组织机构)
	 * 
	 * @param Map<String,Object> map
	 *           
	 * @return BaseOrg baseOrg
	 */
	public List<BaseOrg> queryBaseOrgSer(Map<String, Object> params);
	
	/**
	 * 组织机构(模块:组织机构)*跳转增加页面
	 * 
	 * @param Long pId
	 *           
	 * @return BaseOrg baseOrg
	 */
	public BaseOrg getBaseOrg(Long orgId);
	
	/**
	 * 组织机构新增(模块:组织机构)
	 * 
	 * @param BaseOrg baseOrg
	 *           
	 * @return SUCC
	 */
	public void insertBaseOrgSer(BaseOrg baseOrg);
	
	/**
	 * 组织机构修改(模块:组织机构)
	 * 
	 * @param BaseOrg baseOrg
	 *           
	 * @return SUCC
	 */
	public void updateBaseOrgSer(BaseOrg baseOrg);
	
	/**
	 * Tree
	 * 
	 * @param Long parentOrgId
	 *           
	 * @return Tree<MenuDO>
	 */
	public Tree<MenuDO> getTree(Long parentOrgId);
	
	/**
	 * Tree
	 * 
	 * @param Long parentOrgId
	 *           
	 * @return Tree<MenuDO>
	 */
	public Tree<MenuDO> getSubjectTree(Long parentSubjectId);
	
	/**
	 * 医生端树形选择Tree
	 * 
	 * @param Long parentSubjectId
	 *           
	 * @return Tree<MenuDO>
	 */
	public Tree<MenuDO> getSubjectOtherTree(String parentSubjectId);
	
	/**
	 * Tree
	 * 
	 * @param 无
	 *           
	 * @return Tree<MenuDO>
	 */
	public Tree<MenuDO> getInsertTree();
	
	/**
	 * 名字是否重复(新增)
	 * 
	 * @param String parameter
	 *         
	 * @return boolean
	 */
	public boolean validateSer(String pt);
	
	/**
	 * 名字是否重复(修改)
	 * 
	 * @param String parameter
	 *         
	 * @return boolean
	 */
	public boolean updateValidateSer(String pt);
	
	/**
	 * 字典详情跳转(修改)
	 * 
	 * @param Long id
	 *           
	 * @return SysDict sysDict
	 */
	public SysDict getQuery(Long dictId);
	
	/**
	 * 字典新增(模块:字典管理)
	 * 
	 * @param SysDict sysDict
	 *           
	 * @return SUCC
	 */
	public void insertSysDictSer(SysDict sysDict);
	
	/**
	 * 字典修改(模块:字典管理)
	 * 
	 * @param SysDict sysDict
	 *           
	 * @return SUCC
	 */
	public void updateSysDictSer(SysDict sysDict);
}
